package modle

type Enum int

const (
	Unknown   Enum = 0 // 未知
	Failed    Enum = 1 // 失败
	Review    Enum = 2 // 复审
	Pass      Enum = 3 // 通过
	Exception Enum = 4 // 异常
)

// 风险评估请求
type RiskAssessmentReq struct {
	Uid uint
}

// 风险凭估响应
type RiskAssessmentResp struct {
	BlackLists []SingleResult // 黑名单结果
	Conclusion ConclusionType // 总评
	Details    []DetailsType  // 详情
}

type ConclusionType struct {
	Score  int    `json:"Score"`            // 凭估分数
	Result Enum   `json:"result"`           // 凭估结果
	Reason string `json:"reason,omitempty"` // 原因
}

type DetailsType struct {
	Oid    uint   // optionsID
	Score  int    // 单个选项的分数
	Status int    // 执行状态  1.成功执行，pass或者不满足条件的扣分都是执行成功 2.执行失败，数据库错误，查不到该用户数据等问题
	Reason string // 失败时返回对应原因，成功时返回"pass"
	Value  uint   // 用户指标具体值
}

// 用户通讯录内容
type Contacts struct {
	Cid      string `json:"cid,omitempty"`
	Email    string `json:"email,omitempty"`
	Name     string `json:"name,omitempty"`
	PhoneNum string `json:"phoneNum,omitempty"`
}

// 用户通讯录内容
type UrgencyContacts struct {
	FiliationId int    `json:"filiationId,omitempty"`
	FullName    string `json:"fullName,omitempty"`
	Phone       string `json:"phone,omitempty"`
}

// 通话记录
type CallRecord struct {
	Date   int64  `json:"date"`
	Number string `json:"number"`
}

// 黑名单返回结构
type RetTotal struct {
	RetCode int    `json:"retCode"`
	RetDesc string `json:"retDesc"`
	RetData Ret    `json:"retData"`
}

type Ret struct {
	FlagBlackList string `json:"flagBlackList,omitempty"`
	BlIdHighRisk  string `json:"blIdHighRisk,omitempty"`
	BlIdMidRisk   string `json:"blIdMidRisk,omitempty"`
	BlIdLowRisk   string `json:"blIdLowRisk,omitempty"`
	BlIdAgency    string `json:"blIdAgency,omitempty"`
	BlMobHighRisk string `json:"blMobHighRisk,omitempty"`
	BlMobMidRisk  string `json:"blMobMidRisk,omitempty"`
	BlMobLowRisk  string `json:"blMobLowRisk,omitempty"`
	BlMobAgency   string `json:"blMobAgency,omitempty"`
}


// 单个厂商结果
type SingleResult struct {
	IdRisk    int
	PhoneRisk int
	Factory   string // 厂商
}
